const joi = require("joi");
/**
 * string() 值必须是字符串
 * alphanum() 值只能是包含 a-zA-Z0-9 的字符串
 * min(length) 最小长度
 * max(length) 最大长度
 * required() 值是必填项，不能为 undefined
 * pattern(正则表达式) 值必须符合正则表达式的规则
 */

// 用户名的校验规则
const username = joi.string().min(1).max(10).required();
// 密码的验证规则
const password = joi
  .string()
  .pattern(/^(?=.*\d)(?=.*[a-zA-Z])|(?=.*\d)|(?=.*[a-zA-Z])[\da-zA-Z]{6,18}$/)
  .required();

// 定义 id, nickname, emial 的验证规则
const id = joi.number().integer().min(1).required();
const nickname = joi.string();
const email = joi.string().email();
const sign = joi.string().max(255);
const age = joi.string().max(3);
const gender = joi.string();
const user_pic = joi.string();

// 注册登录表单的验证对象
exports.reg_login_schema = {
  // 表示需要对req.body的数据进行验证
  body: {
    username,
    password,
  },
};
// 验证规则对象 - 更新用户基本信息
exports.update_userinfo_schema = {
  body: {
    id,
    sign,
    age,
    gender,
    user_pic,
  },
};

//重置密码的验证对象
exports.update_password_schema = {
  body: {
    oldPwd: password,
    newPwd: joi.not(joi.ref("oldPwd")).concat(password),
  },
};
